#ifndef _world_Geometry_hpp_
#define _world_Geometry_hpp_

#include "Common.hpp"

namespace world {

    /** \brief A Collision Geometry Object
     *
     *  \note provisorische Klasse
     */
    struct Geometry
    {
        enum Type {
            SPHERE,
            BOX
        };

        Geometry() {}

        Geometry(real r)
        :   type(SPHERE),
            radius(r)
        { }

        Geometry(const vector3r& e, const vector3r& c)
        :   type(BOX),
            extent(e),
            center(c),
            radius(norm(e))
        { }

        Type        type;
        real        radius; ///<sphere radius for sphere. Circumsphere radius for Box
        vector3r    extent; ///<box side lengths
        vector3r    center; ///<center of the geometry in the entity coordinate frame
    };

} // namespace world
#endif // _world_Geometry_hpp_
